#include <stdio.h>
int main()
{
    int a = 0x1A2B3C4D;
    char c = 'a';

    int *pa = &a;
    char *pc = &c;

    printf("a = %d, pa = %p\n", a, pa);
    printf("c = %d, pc = %p\n", c, pc);

    // char *p = pa; // 错误  不同类型的指针不能相互赋值
    void *p = pa; // void * 指针 忽略掉了数据类型
    printf("p = %p\n", p);
    printf("*(int *)p = %#x\n", *(int *)p);
    printf("*(char *)p = %#x\n", *(char *)p);
    printf("*(char *)p = %#x\n", *((char *)p + 1));

    printf("*(short *)p = %#x\n", *(short *)p);
    printf("*(short *)p = %#x\n", *((short *)p + 1));
    return 0;
}